import './css/index.less'
import './js/index'

// let and const
let a = 'a'
const b = 'b'

// 变量的结构赋值
let [c,cc,ccc] = [1,11,111]
let { foo, bar } = { foo:'aaa', bar:'bbb' }

// 字符串的扩展
for (let char of 'iterable') {
  console.log(char);
}
let s = 'hello worlds'
console.log(s.includes('wor'));
console.log(s.startsWith('!'));
console.log(s.endsWith('ds'));
let s1 = 'boom '.repeat(3);
console.log(s1);
console.log('x'.padStart(5, 'ab'));
console.log('x'.padEnd(5, 'ab'));
let str = `${s} my son`
console.log(str);

// 数值的扩展
console.log(Number.isFinite(2 / 3));
console.log(Number.isFinite(Infinity));
console.log(Number.isNaN(55));
console.log(Number.parseFloat(2/3));
console.log(Number.parseInt(2/3));
console.log(Number.isInteger(2/3));
// 新增数学方法
Math.trunc(4.52)  // 取整数部分
Math.sign(-5)  // 判读一个数是正数还是负数还是零  正数返回+1，负数返回-1，0返回0，-0返回-0，其他值返回NaN
Math.cbrt(9)  // 求立方根
Math.hypot(3,4) // 5  // 返回所有参数的平方和的平方根 
let d = 2**4  // 指数运算符 2的4次方=16
console.log(d);
let dd = 2**2**3  // 指数运算是右结合运算符 相当于 2**(2**3)
console.log(dd);


// 函数的扩展
function log(x,y=2) {
  return x+y
}
console.log(log(2));
function restfn(...val) {
  let sum = 0
  for (let v of val) {
    sum += v
  }
  return sum
}
console.log(restfn(1,2,5,8,9));

// 箭头函数  多个参数用括号()括起来，单个参数不需要括号，无参数用空括号()表示
// 箭头函数返回值  代码块多于一条语句，要用大括号括起来并使用return返回
let fn1 = v => v   
let fn2 = (a,b) => a+b
let fn3 = () => 5
let fn4 = (a,b) => {
  let c = a%b+b-a 
  return a+b+c 
}
console.log(fn1(5),fn2(2,3),fn3(),fn4(2,3));

// 数组的扩展



